Indexing under Direct Manipulation

In Xerox PARC's Cedar environment [20], the Tioga editor supports an application called IndexTool [21] that automatically prepares multiple multi-level indexes (general index, author index, etc.) with cross references (see and see also) and with substitution phrases (index the phrase ``data structures'' under ``data structure'' to handle these automatically). IndexTool takes a selection and creates an index entry attached to the document over the selection range. Index entries can be edited in a separate tool to permit creating the cross references and substitution text. Tioga also has a regular expression search capability via EditTool, which also permits a wide range of search and replace operations.

In FrameMaker 1.0 [15], index tags can be placed and edited using a combination of the Markers and the Search tools. Markers allows one to specify invisible tags such as subjects, comments, and of course, index entries. For each marker, an associated annotation can be specified. In the indexing case, the annotation is the key to appear in the final index. Attributes of page encapsulation discussed previously can also be specified in the Markers window. These attributes include explicit page range, fonts, and an option to disable page numbers so that cross references like see can be realized. FrameMaker's Search can be used to locate the desired pattern in plain or regular expressions. An invisible character \m can be specified in Search to identify each occurrence of index markers in the document. Whenever a marker is found, the corresponding annotation is displayed in the Markers window. The annotated text can incorporate special symbols to yield multi-level indexing and actual field substitution similar to the ones described in above. A processor called fmBook can be executed off-line to collect index markers, sort them, and finally generate a formatted index whose style is customizable via system supplied property sheets.

In the Macintosh version of MicroSoft Word 3.0 [16], an index command is designated by the ``index code'' .i. The text between .i. and an ``end-of-entry code'', such as a semicolon, is regarded as the index key. A colon (:) in the entry text acts as the index level operator. The output appearance can be refined by using variants of the index code. For instance, .iB. and .iI. set the page number in boldface and italic fonts, respectively, .i(. and .i). create an explicit page range, etc. Index entries are ``compiled'' into the actual index that appears at the end of the document. Before that takes place, the system must be notified that these index codes are hidden text. An option in the preference sheet can be set to display hidden text embedded in the document. Hidden text must be ``hidden'' when index entries are being compiled; otherwise page number computation will be incorrect. There are no special tools for entering index codes. The find and change commands in the Search Menu do not support regular expressions. There are no query-insert modes in the search mechanism. Although abbreviations can be registered as glossary entries, a great many keystrokes are still required in placing a single index entry.

In Ventura Publisher 1.1 [17], a desktop publishing system for documents prepared on any of several word processing programs on the IBM PC, index entries can be placed in the document by invoking a dialogue box at the desired position. An alternative is to use a word processor to enter a markup tag such as

<$I<I>alpha<L>[alpha];beta>
where <$I ... > marks ... as an index term, <I>alpha<L> is the actual key in italic, [ ... ] designates ... as the corresponding sort key, and the semicolon is the index level operator. It supports two levels of subindexing as well as see and see also. Index terms are hidden text; the word Index will be displayed by its Current Selection Indicator when the cursor is placed at a location where an index term is anchored. The output index style can be specified by changing attributes in a property sheet called GENERATE INDEX. The collection of attributes is a proper subset of Table 2. Index processing is executed as a batch job similar to fmBook in FrameMaker. Searching is unavailable in Ventura Publisher, therefore an automated index placing subsystem is not possible.